Print control apparatus and print control method capable of canceling print job

ABSTRACT

When canceling a print job in process of transfer, the user&#39;s load in accordance with a process for canceling the print job is reduced, and processes for actually deleting the print data in a printer and stopping a process for printing the print data are executed speedily. According to the present invention, the print data is received, it is analyzed whether or not predetermined information is included in the received print data, and the print job constructed by print data is canceled when the predetermined information is included as the analyzed result.

This application is a divisional of U.S. patent application Ser. No.09/557,913, filed Apr. 21, 2000, now U.S. Pat. No. 7,050,186.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing apparatus, aprint control apparatus, an information processing method, and a printcontrol method in a print system in which a host computer transmitsprint data constructing a print job to a printer and the printer printsdata on the basis of the print data.

2. Description of the Related Art

Hitherto, there has been used a print processing system in which a hostcomputer forms data (such as aggregate data and document data), theformed data as print data is transferred to a print output apparatus(referred to as a printer, hereinbelow), and the transferred data isoutputted to paper, etc.

SUMMARY OF THE INVENTION

According to a conventional technique, although a print server cancancel a print job that stands by a printing process, it is difficult tocancel a print job whose printing process is waited by a printer and aprint job whose printing process is started by the printer but output isnot completed. Note that the cancel of the print job means the deletionof the print data regarding the print job and the stop of a process forprinting the print data regarding the print job, namely, a series ofprocesses for avoiding the output of the print job.

As a system capable of canceling the print job in the printer, a systemshown in FIG. 5 is devised. In particular, FIG. 5 shows a processingroutine to cancel the print job halfway through transferring the printjob from a host computer to the printer.

First, the host computer starts transferring the print data of the printjob (step S501). The printer starts receiving the print data (stepS511). The host computer accepts an instruction to cancel the print job,when the user presses a “cancel button” in a dialogue shown in FIG. 11in process of transferring the print data (step S502). Further, thetransfer of the print data is stopped in accordance with the cancelinstruction (step S503).

Although the transfer of the print data is stopped for the present instep S503, the printing process is executed for the print data which hasbeen already received to the printer. Therefore, the avoidance of anunnecessary output necessitates a process for deleting the print datawhich has been already received to the printer and stopping the processfor printing the print data.

Accordingly, the user activates a utility for deleting the print data inthe printer and stopping the process for printing the print data by thehost computer (step S504). The utility (or the host computer accordingto the utility) transfers, to the printer, a control command to requestinformation indicative of a situation of the printing process in theprinter (step S505).

In order to respond the control command, the printer returns theinformation indicative of the situation of the printing process to thehost computer (step S512). The utility displays a picture plane shown inFIG. 10 on the basis of the information (step S506).

The user checks to see for which print job the cancel instruction isissued (for which print job the cancel instruction is issued in stepS502), while seeing the picture plane shown in FIG. 10, selects theprint job, and presses the “cancel” button. The host computer recognizesfor which print job, the user issues the cancel instruction (step S507).The host computer transfers a control command to delete the print dataand stop the process for printing the print data to the printer (stepS508).

The printer deletes the relevant print data and stops the process forprinting the relevant print data in accordance with the control command(step S513).

Consequently, it is able to avoid the unnecessary output and preventunnecessary consumption for paper and toner, etc., when the user findsout something unsatisfactory (such as an erratum and a hiatus in aparagraph of the print data) in the print data in the print job andthere is a mistake in the output format of the print data (such as sheetsize and layout) after the user issues the output instruction of theprint job.

However, according to the system, the user must execute an operation toissue the cancel instruction of the print job in steps 502 and 507,namely, twice so as to prevent the unnecessary output. Accordingly, theload for the user is increased in accordance with the canceling processof the print job.

The processes in steps S504 to 508 must be conducted until the printdata in the printer is actually deleted and the process for printing theprint data is stopped after issuing the first cancel instruction and,therefore, the process for printing the print data might advance in theprinter unnecessarily for a time in steps 504 to 508, thereby performingno cancel of the print job speedily. Particularly, it might beimpossible for a printer having a high-speed processing capacity toavoid the unnecessary output because the deletion of the print data andthe stop of the process for printing the print data are not in time forthe completion of the print data output.

To solve the above problem, according to the present invention, there isprovided an information processing apparatus for transmitting print dataconstructing a print job, comprising: transfer means for transferringthe print data; and detecting means for detecting an instruction tocancel the print job, wherein the transfer means transfers the printdata including predetermined information when the detecting meansdetects the instruction to cancel the print job.

To solve the above problem, according to the present invention, there isprovided a print control apparatus for receiving print data constructinga print job, comprising: receiving means for receiving the print data;analyzing means for analyzing whether or not predetermined informationis included in the print data received by the receiving means; andcontrol means for control an operation to cancel the print jobconstructed by the print data when the predetermined information isincluded as the analysis result by the analyzing means.

To solve the above problem, according to the present invention, there isa print system having an information processing apparatus fortransmitting print data constructing a print job and a print controlapparatus for receiving the print data, wherein the informationprocessing apparatus comprises: transfer means for transferring theprint data; detecting means for detecting an instruction to cancel theprint job, and the transfer means transfers the print data includingpredetermined information when the detecting means detects theinstruction to cancel the print job, and the print control apparatuscomprises: receiving means for receiving the print data; analyzing meansfor analyzing whether or not predetermined information is included inthe print data received by the receiving means; and control means forcontrol an operation to cancel the print job constructed by the printdata when the predetermined information is included as the analysisresult by the analyzing means.

According to the present invention, there is provided a print method forimplementing the aforementioned print system.

According to the present invention, there is provided an informationprocessing method of implementing the above-discussed informationprocessing apparatus, and according to the present invention, there isprovided a recording medium to which an information processing programfor implementing the above-discussed information processing apparatus isstored.

According to the present invention, there is provided a print controlmethod for implementing the above-stated print control apparatus, andaccording to the present invention, there is provided a recording mediumto which a print control program for implementing the above-stated printcontrol apparatus is stored.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a control construction when a hostcomputer connects to a printer via a communicating medium;

FIG. 2 is a diagram showing a method of supplying a program according tothe present invention to a system or an apparatus;

FIG. 3 is a diagram showing a memory map in a state in which a controlprogram of a host computer according to the present invention is loadedinto an RAM 107 and made executable;

FIG. 4 is a diagram showing a memory map in a state in which the controlprogram of a printer according to the present invention is loaded intoan RAM 114 and is made executable;

FIG. 5 is a flowchart showing a processing routine for canceling a printjob;

FIG. 6 is a diagram showing a system structure of a print processingsystem;

FIG. 7 is a diagram showing one example of a print dialogue as a userinterface for a printer driver;

FIG. 8 is a conceptual diagram showing a print system;

FIG. 9 is a diagram showing a state for receiving/transmitting the printdata between the host computer and the printer;

FIG. 10 is a diagram showing one example of a picture plane to display asituation of a printing process by the printer;

FIG. 11 is a diagram showing one example of a cancel dialogue;

FIGS. 12A to 12D are diagrams of examples of a print job informationtable;

FIGS. 13A to 13C are diagrams showing examples of a job managing table;

FIG. 14 is a flowchart showing an operation of a control unit of thehost computer for an output instruction of the print job and the cancelinstruction thereof by the user;

FIG. 15 is a flowchart showing an operation of a printer control unitupon a process for receiving print data;

FIG. 16 is a block diagram showing a functional construction of the hostcomputer and the printer;

FIG. 17 is a structural diagram showing a structure of a job packet;

FIG. 18 is a flowchart showing an operation for generating a job packetregarding one print job by a job packet generating unit;

FIG. 19 is a flowchart showing an operation when a job pre-processorunit receives the job packet;

FIG. 20 is a sectional view showing an internal structure of a laserbeam printer; and

FIG. 21 is a synoptic diagram of an ink jet recording apparatus IJRAcapable of feeding a plurality of kinds of paper in accordance with theprint job.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

<Print Processing System>

The first description turns to a print processing system according tothe present invention. FIG. 6 is a diagram showing a system structure ofthe print processing system according to the present invention.Referring to FIG. 6, a client computer 601 and a server host computer602 are connected to a network. Printers 603 and 606. are connected tothe client host computer 601 and the server host computer 602 via alocal interface, respectively. A printer 604 is connected to thenetwork.

As for a connecting form of the host computer and the printer, thefollowing cases are exemplified: the client host computers 601 and theserver host computer 602 are connected to the printers 603 and 606 viathe local interface; the client host computer 601 is connected to theprinters 606 and 604 through the server host computer 602; the clienthost computer 601 and the server host computer 602 are connected to theprinter 604 through the network; and the like. All of the cases aresimilar.

<Control Construction of the Print Processing System>

FIG. 1 is a block diagram showing a control construction when the hostcomputer is connected to the printer by way of a communicating medium. Ahost computer 100 is connected to a printer 110 through a communicatingmedium 120. It is noted that the host computer 100 is equivalent to theclient host computer 601 and the server host computer 602 in FIG. 6, theprinter 110 is equivalent to the printers 603, 604, and 606 in FIG. 6,and the communicating medium 120 is equivalent to the network and thelocal interface in FIG. 6.

The host computer 100 comprises: an input unit 106; a recording mediumreading unit 105; a display unit 104; an RAM 107; an ROM 108; a diskdevice 109; a control unit 101; and a connecting unit 102. The controlunit 101 executes a document processing program which is stored to theROM 108 or disk device 109, and collectively controls the constructions.There are stored into the ROM 108 or disk device 109 an operating systemprogram (referred to as an OS, hereinlater) and font data used upon adocument process as well as the document processing program. Further,document data, etc. formed on the document processing program are alsostored to the disk device 109. The RAM 107 is utilized as a main memoryof the control unit 101 and a work area, etc.

The input unit 106 receives an input by the user from a keyboard orpointing device (not shown). The display unit 104 displays a variety ofitems of information to a display device or the like and provides agraphical interface to the user. The recording medium reading unit 105controls the access to a recording medium such as a floppy disk 103 anda CD-ROM, etc. The connecting unit 102 controls an operation tocommunicate with the printer 110.

The printer 110 comprises: a control unit 111; a connecting unit 112; anRAM 114; an ROM 115; a disk device 116; and a print unit 113. Theconnecting unit 112 controls the communication between the host computer100 and the printer 110, thereby actually receiving the print data. Thecontrol unit (CPU) 111 controls the whole operation for the printer 110.The print unit 113 outputs the data to a paper medium, based on theprint data received by the connecting unit 112. A recording unit of theprinter comprises: the ROM (read only memory) 115; the RAM (randomaccess memory) 114; and the disk device 116. The RAM 114 is a datastoring area which has no regulation for use, and utilized as areceiving buffer of the print data or an area to store image datagenerated on the basis of print data.

A program and associated data to implement the present invention arestored to the disk device 109 in the host computer 100, and loaded intothe RAM 107 and executed by the control unit 101 when activating thehost computer 100. Similarly, the program and associated data toimplement the present invention are stored into the ROM 115 in theprinter 110, and loaded into the RAM 114 and executed by the controlunit 111 when activating the printer 110. It is to be noted that theprogram to implement the present invention has a program code based onflowcharts in FIGS. 14 and 15.

The user may insert the recording medium 103 into a recording mediuminserting portion 201 in the host computer, and the medium reading unit105 in the host computer 100 may load the program and associated data toimplement the present invention from the recording medium 103 to the RAM114.

<Functional Construction of the Print Processing System>

The next description turns to the functional construction of the hostcomputer and the printer in the print system according to the presentinvention. FIG. 16 is a block diagram showing the functionalconstruction of the host computer and the printer. Note that thefunctional construction is provided on a control construction in FIG. 1.

The functional construction of the host computer 100 comprises: anapplication unit 1601; a printer driver unit 1602; a transmitting buffer1603; an I/F driver unit 1604; a utility unit 1605; a logical channelcontrol unit 1606; and the job packet generating unit 1607.

Describing the functions of the above units in detail, the applicationunit 1601 provides a graphical user interface to the user, and generatesdocument data suitable for the user's purpose. The printer driver unit1602 converts document data generated by the application unit 1601 intopage description language (PDL) data which is printable by the printer110. The transmitting buffer 1603 temporarily the PDL data which isgenerated by the printer driver unit 1602. The job packet generatingunit 1607 generates job packet data from the PDL data stored to thetransmitting buffer 1603 (as will be explained, using FIGS. 17 and 18,hereinafter). The utility unit 1605 acquires information of the printer110, displays the acquired information to the graphical user interface,and changes the environment setting of the printer 110 according to theuser's desire.

The logical channel control unit 1606 converts into one physicalchannel, two logical channels; a data channel to transfer job packetdata transmitted from the job packet generating unit 1607; and amanaging channel to obtain a state of receiving/transmitting the datato/from the utility unit 1605 and transfer managing packet data forenvironment setting. That is, the logical channel control unit 1606controls an operation to receive/transmit two different kinds of datavia one interface, because the communicating medium 120 is one physicalinteractive interface. The I/F driver unit 1604 actuallyreceives/transmits data to/from the printer under the control by thelogical channel control unit 1606.

On the other hand, the functional construction of the printer 110comprises: a logical channel control unit 1608; an equipment databaseunit 1609; a job pre-processor unit 1610; a receiving buffer 1611; a PDLtranslator unit 1612; a drawing buffer 1613; a drawing unit 1614; aprinter engine unit 1615; an I/F driver unit 1616; and an informationmanaging unit 1617.

Describing the functions of the above units in detail, the I/F driverunit 1616 actually receives/transmits data to/from the host computer100. The logical channel control unit 1608 distributes the packet dataand managing data which are received by the I/F driver unit 1616 to thepost stage. The job packet data might be transmitted to the jobpre-processor unit 1610, and the managing packet data might betransmitted to the information managing unit 1617.

The job pre-processor unit 1610 receives the job packet data from thelogical channel control unit 1608, and transfers the PDL data to thereceiving buffer 1611 and sets information to the equipment databaseunit 1609 in accordance with an operation code stored to a packet headerportion of the job packet (as will be discussed hereinafter, using FIG.17).

As will be stated hereinbelow, using FIG. 19, if the operation code ofthe job packet is a job start command, a job number is allocated and setto a job managing table in the equipment database unit 1609. If theoperation code of the job packet is a PDL data transmitting operation,the PDL data and the job number are transferred to the receiving buffer1611. The job pre-processor unit 1610 updates a column of the datareceived by the equipment database unit 1609, each time transferring thePDL data to the receiving buffer 1611. If the operation code of the jobpacket is a job property setting operation, the contents of a parameterare set to the job managing table in the equipment database unit 1609.

When storing all of the PDL data of a certain job number into thereceiving buffer 1611, the job pre-processor unit 1610 stores such afact the column of the received data in the job managing table of theequipment database unit 1609.

The receiving buffer 1611 temporarily holds the PDL data to which thejob number is allocated, and becomes a buffer body against the delay atthe post stage. The equipment database unit 1609 stores equipmentinformation and the job information of the print job of the printer 110.Note that the job managing table of the equipment database unit 1609will be mentioned hereinafter with reference to FIG. 13.

The information managing unit 1617 receives the managing packettransmitted through the managing channel, and rewrites the informationof the equipment database unit 1609 and controls the print job inaccordance with the operation code of the managing packet and the datathereof.

The PDL translator unit 1612 performs a translating process of the PDLdata, converts the data into a drawing object (intermediate data)suitable for the drawing, and stores the converted data into the drawingbuffer 1613. The drawing buffer 1613 temporarily stores the drawingobject until the drawing object is subjected to a printing process. Ifstoring to the drawing buffer 1613 a drawing object of one page, thedrawing unit 1614 starts the printing process for the drawing object.

The drawing unit 1614 actually draws the drawing object which istemporarily stored to the drawing buffer 1613, generates a bit mapimage, and transmits the bit map image to the printer engine unit 1615.If starting to generate the bit map image of a new job number, thedrawing unit 1614 updates a column of the data in process of printing inthe job managing table of the equipment database unit 1609.

The printer engine unit 1615 receives the bit map image generated by thedrawing unit 1614, and outputs the image to a medium such as paper by awell-known printing technique.

<Print Job>

The print job comprises a plurality of job packets. Each job packetcomprises a packet header portion and a data portion. The job packet asone-lump data is transmitted to the printer 110 from the host computer100. Herein, the packet is a packet under a narrower term, serving as apacket on data communication in the network, but a packet under abroader term serving as a data lump regarding the print job.

FIG. 17 is a structural diagram showing a structure of the job packet.The axis of the ordinate indicates a byte and the axis of the abscissaindicates a bit of each byte. In the figure, operation codes of a 0-thbyte to a first byte denote an ID of a 2-byte length indicative of apacket function. The operation code can has the following values:

0x0201 job start operation 0x0202 job property setting operation 0x0204PDL data transmitting operation 0x0205 job end operation

“0x” means a hexadecimal notation. The job start operation is anoperation code of the job packet indicative of the print job start. Thejob property setting operation is an operation code of the job packet toset the property of the print job. The PDL data transmitting operationis an operation code of the job packet to which the PDL data is stored.The job end operation is an operation code of the job packet indicativeof the print job end. The job control operation is an operation code ofthe job packet to control the print job.

Block numbers of a second byte to a third byte are numbers used forcorrespondence between the request and answer when a side to transmitthe job packet requests an answer. When the host computer 100sequentially transmits the job packets of the block numbers 1, 2, and 3,the transmitting side can specify that an error causes in the job packetwhich is transmitted at the second time in the case where the printer110 returns the error packet of the block number 2.

An area as a parameter length of a forth byte to a fifth byte shows abyte length of the data portion subsequent to a twelfth byte, and canindicate a length of 0 to 64 KB. The parameter length might differ bydepending on the property indicative of the packet header.

An area as the parameter length of a sixth byte to a seventh byte showsvarious flags of the job packet, and can indicate the following values:

Error flag: when the value of the error flag is equal to 1, thisindicates that any error causes in the printer 110. The flag is added toa returning packet which is transmitted from the printer 110 to the hostcomputer 109.

Notifying flag: when the value of the notifying flag is equal to 1, thisindicates that there is not the answer for the requesting packet fromthe host computer 100, but there is any notifying item from the printer110 and the presence of the notifying item is notified to the hostcomputer 100.

Continuation flag: when the value of the continuation flag is equal to1, this indicates that the remaining data is transmitted in the next jobpacket because all of the data is not included in the data portion. Thenext job packet has to set the same operation code as that of the formerjob packet.

Answer request: when an answer packet from the host computer 100 to theprinter 110 is necessary, “1” is set. When 0, the answer is not returnedin the case where the requesting packet is normally processed. If anerror causes in the printer 110, the answer packet is transmitted byalways setting the error flag to 1, irrespective of 0/1 of the answeringrequest.

Cancel flag: when the cancel flag has a value of 1, this indicates thatthe cancel instruction of the print job is issued.

A user ID exists in a job packet between an eighth byte and a ninth byteand a password exists in a job packet between a tenth byte and aneleventh byte. Those areas are used for authentication when adding asecurity limit to the operation by the requesting packet.

Data (parameter and PDL) is stored to a job packet byte subsequent to atwelfth byte in accordance with the operation code. In case of the jobstart operation and the job end operation, no data exists.

In case of the job property setting operation, the operation is effectedto set a desired job property ID and a desired job property value. Thejob property ID indicates an identifier corresponding to the propertyregarding the print job. The job property ID is previously allocated.This job property ID corresponds to the property of the job propertyspecified by an ISO-10175 (DPA) (ISO: International StandardizationOrganization). Representative job properties are exemplified as follows:

0x0101 job name 0x0103 job owner name 0x016a job size

In case of the PDL data transmitting operation, the PDL data is includedin the data portion. Data of one job packet is limited to the maximumsize which can be stored to the parameter length. Therefore, data of upto 64 KB can be stored. Data more than 64 KB is divided into a pluralityof job packets and transmitted. The operation code in each job packetindicates the PDL data transmitting operation. The continuation flag ofthe job packets is equal to 1.

<Generation of the Job Packet>

FIG. 18 is a flowchart showing an operation that the job packetgenerating unit 1607 generates the job packet regarding one print job.If the user issues an instruction to print the document data aftergenerating the document data by the application unit 1601, the documentdata is transmitted to the printer driver unit 1602 through a GDI(graphical Device Interface), etc. from the application unit 1601. Theprinter driver unit 1602 generates the PDL data on the basis of the datatransmitted from the GDI, and stores the PDL data into the transmittingbuffer 1603. When the PDL data is sequentially generated to thetransmitting buffer 1603, the job packet generating unit 1607 starts aprocess for generating the job packet.

In step 1801, the job packet generating unit 1607 generates the jobstart packet and transmits it to the logical channel control unit 1606.The job start packet indicates that the operation code in the packetheader portion (in FIG. 17) is the job start operation (“0201”). Theidentifier of the job issued by the job packet generating unit 1607 isincluded in the data portion of the job start packet.

The job packet generating unit 1607 generates the job property packetand transmits the generated job property packet to the logical channelcontrol unit 1607 in step 1802. The job property packet is a job packetshowing that the operation code of the packet header portion (in FIG.17) is a job property setting operation (“0202”). A property ID and aproperty value regarding the relevant print job are included in the dataportion of the job property packet. As mentioned above, the job propertyhas the job name, job owner name, job size, etc. It is noted that thejob name can be obtained by the printer driver unit 1602 from the GDI,the job owner name can be obtained from the user's name when the userlogs on by utilizing a function as an accessory to the OS, and the jobsize can be obtained by internally calculating the PDL generated by theprinter driver unit 1602.

The job packet generating unit 1607 obtains a maximum size N in the datatransmittable by the job packet in step 1803. As expressed above,according to the present embodiment, the maximum size of the datatransmittable by the job packet is 64 KB.

The job packet generating unit 1607 obtains a size of the data to betransmitted, specifically speaking, the size of the PDL data stored inthe transmitting buffer 1603 in step 1804. It is discriminated whetheror not the size of the transmitting data (PDL data) obtained in step1804 is larger than the maximum size N in step 1805. If it is determinedthat the size of the transmitting data is larger than the maximum size N(YES in step 1805), the processing routine advances to step 1806, thejob packet generating unit 1607 divides the PDL data into a portion fromthe head to the size N (64 KB, herein) and a portion except therefor(remaining portion).

The job packet generating unit 1607 generates the packet header of thetransmitting data packet to which the PDL data from the head to the sizeN is stored in step 1807. The transmitting data packet is a job packetshowing that the operation code in the packet header portion (in FIG.17) is a PDL data transmitting operation (“0204”). The continuation flagin the packet header portion is set to “1” at this time.

The job packet generating unit 1607 couples the packet header to the PDLdata from the head to the size N, thereby forming the transmitting datapacket in step 1808. In other words, the PDL data of the size N isincluded in the data portion of the job packet as it is.

The job packet generating unit 1607 transmits the formed job packet tothe logical channel control unit 1606 in step 1809. In step S1810, thejob packet generating unit 1607 obtains the size of the PDL data whichis not transmitted, and the processing routine returns to step 1805.

If it is determined that the size of the transmitting data is not largerthan the maximum size N in step 1805, the processing routine advances tostep 1811, and the packet header is generated similarly to step 1807.However, the continuation flag of the packet header is set to “0” instep 1811.

The job packet generating unit 1607 couples the packet header to theremaining PDL data, thereby forming the transmitting data packet in step1812. In step 1813, the job packet generating unit 1607 transmits theformed transmitting data packet to the logical channel control unit1606.

Finally, the job packet generating unit 1607 generates the job endpacket and transmits the generated job end packet to the logical channelcontrol unit 1606 in step 1814. The job end packet is a job packetshowing that the operation code in the packet header portion (in FIG.17) is a job end operation (“0205”). Actually, there are neither aparameter nor data in the data portion of the job end packet.

The above-explained manner results in generating a series of job packetsregarding one print job and transmitting the generated job packets tothe printer 110 from the host computer 100 by way of the logical channelcontrol unit 1606.

<Reception of the Job Packet>

The next description turns to an operation when the job pre-processorunit 1610 in the printer 110 receives the job packet. FIG. 19 is aflowchart showing the operation when the job pre-processor unit 1610 inthe printer 110 receives the job packet.

The logical channel control unit 1608 transfers the job packettransmitted from the host computer 100 to the job pre-processor unit1610 and, on the other hand, transfers the managing packet to theinformation managing unit 1617. The job pre-processor unit 1610discriminates whether or not the job packet is received in step S1901.

It is determined that the job packet is received (YES in step S1901), aprocess in step S1902 is executed to analyze the operation code in thepacket header portion of the job packet.

It is discriminated whether or not the job packet is the job end packetin step S1903. If it is determined that the job packet is the job endpacket (YES in step S1903), the processing routine advances to stepS1912. A process in step S1912 is executed to write, into a column ofthe received data in the job managing table of the equipment databaseunit 1609, a fact that the print data of 100% in the print job regardingthe job end packet has been received.

If it is determined that the job packet is not the job end packet (NO instep S1903), it is discriminated whether or not the job packet is thejob start packet in step S1904. If it is determined that the job packetis the job start packet, the processing routine advances to step S1908.A process in step S1908 is executed to issue a job number to the printjob regarding the job start packet and register the print job and thejob number to the job managing table.

If it is determined that the job packet is not the job start packet (NOin step S1904), a process in step S1905 is executed to discriminatewhether or not the job packet is the job property packet. If it isdetermined that the job packet is the job property packet, theprocessing routine advances to step S1909. A process in step S1909 isexecuted to update a column of the job property of the relevant printjob in the job managing table.

If it is determined that the job packet is not the job property packet(NO in step S1905), a process in step S1906 is executed to discriminatewhether or not the job packet is the transmitting data packet. If it isdetermined that the job packet is the transmitting data packet, theprocessing routine advances to step S1910. A process in step S1910 isexecuted to store the print data into the receiving buffer 1611. At thistime, in order to enable to check to which print job, the relevant databelongs later, the job number as well as the print data is stored intothe receiving buffer. A process in step S1907 is executed to check towhich degree, the print data of the print job regarding the job packethas been already received and update a column of the received data inthe job managing table.

<Process for Transmitting the Print Data>

Based on the foregoing, the description turns to the operation of thehost computer for the user's instruction to output the print job and theuser's instruction to cancel the relevant print job. FIG. 14 is aflowchart showing the operation of the control unit 101 in the hostcomputer 100 at this time. Note that it is assumed to generalize theoperations of the functional construction (in FIG. 16) of the hostcomputer 100, thereby setting them to the operation of the control unit101 in the host computer 100.

When the user presses a “print” button in a print dialogue (in FIG. 7)as a user interface for the printer driver unit 1602, the control unit101 starts a process for the print job (step 1401). First, the printdata (PDL data) of the print job is generated (step 1402). The nextprocess is executed to form, to the RAM 107, print job information tableused for the print job process (step 1403). FIGS. 12A to 12D illustrateexamples of the print job information table.

The print job information table at this time is as illustrated in FIG.12A. This example in FIG. 12A illustrates to issue an instruction tooutput the print job of the job name “sample A” and the owner name“Mr-B”. The column of transmitting standby data unprocessed shows thatthe number of pages of the print job is equal to 5. Since the print datais still not transferred at this time, no transmitting data in processis absent and the status of the print job becomes the transmittingstandby.

Subsequently, the control unit 101 starts to transfer the print data andalso displays a cancel dialogue to the display unit 104 in FIG. 11 (step1404). It is discriminated whether or not the user presses a “cancel”button in the cancel dialogue (step 1405).

If it is determined that the user does not press the “cancel” button (NOin step 1405), a process is executed to transmit the print data to theprinter 110 (step 1409). Specifically speaking, processes are executedto generate the job packet by the job packet generating unit 1607 andtransmit the job packet by the logical channel control unit 1606. Theprint data transmitted in step 1409 is deleted from the transmittingbuffer (step 1410). A process is executed to update columns of thetransmitting standby data unprocessed in the print job information tableand the transmitting standby data in process therein (step 1411).

The print job information table in FIG. 12B is one example of the printjob information table after updating in step 1411. The print jobinformation table in FIG. 12B illustrates that a 1-page of the print job“sample A” is being transmitted and the 1-page of 70% enters atransmitting standby mode (the 1-page of 30% has been transmitted).

If it is determined in step 1405 that the user presses the “cancel”button (YES in step 1405), it is discriminated whether or not thetransmitted data is present by referring to the print job informationtable stored to the RAM 107 (step 1406).

If it is determined that the transmitted data is not present (in case ofthe print job information table in FIG. 12A) (NO in step 1406), thetransmitting standby data is deleted from the storing unit, irrespectiveof unprocessed data and data in process (step 1415). In case of theprint job information table in FIG. 12A, the print data of five pages ismade invalid (or deleted) in the print job “sample A”. Subsequently, theprint job information table is also erased (deleted) from the RAM 107.

If it is determined that the transmitted data is present (in case of theprint job information table in FIG. 12C) (YES in step 1406), processesin steps 1416, 1407, 1408, and 1417 are implemented to delete the printdata which has been already transmitted to the printer 110 and stop theprocess for printing the print data.

Dummy print data is generated to the RAM 107 to transmit the cancel flagto the printer 110 (step 1416). Specifically speaking, the dummy printdata is vacant print data that has no actual data. The cancel flag isset to the dummy print data (step 1407). The specific process isexecuted to set, to be equal to 1, a value of the cancel flag at thepacket header portion in the transmitting data packet (as stated in<Generation of the job packet>) to which the dummy print data is stored.

“ON” is set to a column of the cancel in the print job information table(step 1408). The print job information table in FIG. 12D illustrates oneexample of the print job information table in steps after step 1408. Afinal process is implemented to transmit the dummy print data (step1417). The specific process is executed to transmit, to the printer 110,the transmitting data packet to which the dummy print data is stored andthe cancel flag at the packet header portion is set to be equal to 1.

The above-explanation indicates the processes when determining that the“cancel” button is pressed and the processes when determining that the“cancel” button is not pressed in step 1405. After the process in step1411 or step 1417, the processing routine shifts to step 1412.

It is discriminated whether or not “ON” is set to the cancel column byreferring to the print job information table (step 1412). If it isdetermined that “ON” is not set in the cancel column (in case of theprint job information tables in FIGS. 12A, 12B, and 12C) (NO in step1412), it is discriminated whether or not the transmission of all of theprint data is completed (step 1414). If the transmission of all of theprint data is completed (YES in step 1414), the processing routineadvances to step 1415. If the transmission of all of the print data isnot completed (NO in step 1414), the processing routine returns to step1405.

If it is determined that “ON” is set in the cancel column (in case ofthe print job information table in FIG. 12D) (YES in step 1412), thetransmitting standby data is deleted from the storing unit, irrespectiveof the unprocessed data and the data in process (step 1415). In case ofthe print job information table in FIG. 12D, the print data of two pages(P4 and P5) is made invalid (or deleted) in the print job “sample A”.Subsequently, the print job information table is also erased (deleted)from the RAM 107

<Process for Receiving the Print Data>

The description turns to the operation of the printer 110 upon a processfor receiving the print data. FIG. 15 is a flowchart showing theoperation of the control unit 111 in the printer 110 at this time. Notethat it is assumed to generalize the operations of the functionalconstruction of the printer 110 (in FIG. 16), thereby setting them tothe operation of the control unit 111 in the printer 110. Herein, thedescription relates to a flow for the process to receive the print datafor an arbitrary print job.

To start with, the control unit 111 discriminates whether or not theprint data from the host computer 100 is being received (step 1501). Ifthe print data is being received (YES in step 1501), a process forreceiving the print data is executed (step 1507). In this case, theprocess is executed to update a column of the received data in the jobmanaging table. The job managing table in FIG. 13B illustrates that dataof a 1-page of 30% in the print job “sample A” has been received.

It is checked to see if there is the received data in which the cancelflag is set (step 1508). The specific process is executed todiscriminate the presence or absence of the transmitting data packet inwhich the cancel flag at the packet header portion is set to 1 in thereceived transmitting data packet. If it is determined that there is noprint data in which the cancel flag is set (NO in step 1508), theprocessing routine shifts to step 1502.

It is discriminated whether or not printable received data or data inprocess of printing exists by referring to the job managing table (step1502). In case of the job managing table in FIG. 13B, it is determinedthat no printable received data exists, because the reception of the1-page data is not completed. In case of the job managing table in FIG.13C, it is determined that both of the printable received data and thedata in process of printing exist.

If it is determined that the printable received data or the data inprocess of printing exists (YES in step 1502), a printing process isimplemented (step 1503). In accordance with the printing process, thejob managing table is updated. The specific process is executed to startthe process for printing the print data of the 1-page and set the jobmanaging table to the job managing table in FIG. 13 c, when completingthe reception of the print data of the 1-page in the print job “sampleA”.

It is discriminated whether or not all of the print data in the printjob is printed in step 1505. If it is determined that all of the printdata in the print job is printed, the information of the relevant printjob is deleted from the job managing table (step 1506).

If it is determined that the print data in which the cancel flag is setexists in step 1508 (YES in step 1508), it is discriminated whether ornot the print data is the print data of the print job to which thecancel instruction is issued and the print data in process of printingexists by referring to the job managing table (step 1509). If YES instep 1509, the process for printing the print data is stopped (step1510). The print data is deleted (step 1511). The specific process isimplemented to stop the process by the PDL translator unit 1612 and thedrawing unit 1614, and cancel the data in process or make the data inprocess invalid.

It is discriminated whether or not the print data is the print data ofthe print job to which the cancel instruction is issued and the receivedprint data exists by referring to the job managing table (step 1512). IfYES in step 1512, the relevant print data is deleted (step 1513). Thespecific process is executed to delete or invalidate the print datastored to the receiving buffer 1611 or drawing buffer 1613, inaccordance with the job number of the print job to which the cancelinstruction is issued.

If finishing the process for canceling the print job as mentioned above,the information of the print job is deleted from the job managing table.

<Reception/Transmission of the Print Data between the Host Computer andthe Printer>

FIG. 8 is a conceptual diagram showing the print system and FIG. 9 is adiagram showing a state for receiving/transmitting the print databetween the host computer 100 and the printer 110. The host computer 100first issues an instruction to output the print job in step (A) in FIG.9, and then the print data of five pages enters a transmitting standbymode. The print data of a first page starts to be-transmitted from thehost computer 100 to the printer 110. The print data of 30% of the firstpage has been already transmitted and the transmission is completed instep (B) in FIG. 9.

The print data of a second page and third page is sequentiallytransmitted. The print data of a forth data is transmitted in steps (C)and (D) in FIG. 9.

Finally, the dummy print data is transmitted to the printer 110 from thehost computer 100 in response to the instruction to cancel the print jobin step (E) in FIG. 9.

<Construction of the Printer>

The description turns to a specific construction of the printeraccording to the present invention. As a printer, a laser beam printer(LBP) may be used. FIG. 20 is a sectional view showing an internalstructure of the laser beam printer. Referring to FIG. 20, referencenumeral 2040 denotes a main body to form an image on the recording paperas a recording medium, based on a supplied character pattern, etc; 2000an operation panel onto which a switch for operation and an LED display,etc. are disposed; and 2001 a printer control unit to control the wholeLBP 2040 and analyze the character pattern information, etc., whichmainly converts the character pattern information into a video signaland outputs the video signal to a laser driver 2002.

The laser driver 2002 is a circuit to drive a semiconductor laser 2003,and switches on/off a laser beam 2004 emitted from the semiconductorlaser 2003 in accordance with the inputted video signal. The laser beam2004 is swung in the horizontal direction by a rotary polygon mirror2005 and thus scans an electrostatic drum 2006. This results in formingan electrostatic latent image of the character pattern on theelectrostatic drum 2006. The latent image is developed by a developingunit 2007 around the electrostatic drum 2006 and thereafter transferredto the recording sheet.

A cut sheet is used as the recording paper. The cut sheets as recordingpaper are accommodated into a plurality of sheet cassettes 2008 whichcorresponds to a plurality of kinds of paper and is mounted to the LBP2040, taken in the printer by a paper feed roller 2009 and conveyingrollers 2010 and 2011, and supplied to the electrostatic drum 2006.

Although the laser beam printer is described as an example, thisinvention is restricted by the laser beam printer. It is able to applythis invention to an ink jet printer, etc., which will be explainedhereinafter. FIG. 21 is a synoptic diagram of an ink jet recordingapparatus IJRA capable of feeding a plurality of kinds of paper (notshown) in accordance with a print job. Referring to FIG. 21, a carriageHC is brought into engagement with a spiral groove 5004 of a lead screw5005 which is interlocked with the forward and reverse rotation of adriving motor 5013 and rotated via drive force transmitting gear 5011and 5009. The carriage HC has a pin (not shown) and moved reciprocatedlyin the arrows “a” and “b” directions. An ink jet cartridge IJC ismounted to the carriage HC. Reference numeral 5002 denotes a paperpressing plate to press paper to a platen 5000 along the movingdirection of the carriage; 5007 and 5008 photocouplers which check theexistence of a lever 5006 of the carriage in the area and serve as homeposition detecting means for switching the rotational direction of themotor 5013, etc.; 5016 a member for supporting a cap member 5022 to capthe front surface of a recording head;. 5015 sucking means for suckingthe inside of the cap, which sucks recovers the recording head via anin-cap opening 5023; 5017 a cleaning blade ; and 5019 a member by whichthe cleaning blade can be moved in front and back direction. Those aresupported to a main body supporting plate 5018. Obviously, as for ablade, the well-known cleaning blade can be applied to the presentembodiment, in place of the blade having the above form. Referencenumeral 5021 denotes a lever to start the suction for sucking andrecover, which is moved in accordance with the movement of a cam 5020brought into engagement with the carriage and is moved and controlled bythe well-known transmitting means such as a clutch switch, etc. byemploying a drive force from the driving motor. Although a desiredprocess can be conducted for the capping, cleaning, and suction andrecover by the operation of the lead screw 5005 at the correspondingposition when the carriage comes to an area on the home position, solong as conducting the desired operation at the well-known timing, it ispossible to apply any method of the capping, cleaning, and suction andrecover to the present embodiment.

<Other Embodiment>

It is noted that it is sufficient to apply the present invention to asystem comprising a plurality of pieces of equipment (such as a hostcomputer, interface equipment, a reader, and a printer), and to anapparatus comprising single equipment (such as a copying machine and afacsimile apparatus). It is also sufficient that the present inventionis applied to a hybrid machine having a plurality of functions (such ascopy, printing, and facsimile).

Obviously, the object of the present invention is also accomplished bysupplying to the system or apparatus shown in FIG. 2, a storing mediumin which a software program code to implement the functions of the aboveembodiments, and reading out and executing the program code which isstored to the storing medium by a computer (CPU or MPU) of the system orapparatus. The program has a program code to control the operations inflowcharts in FIGS. 14, 15, 18, and 19 as mentioned above in the presentembodiments. In this case, the program code itself which is read outfrom the storing medium implements the function of the foregoingembodiments and the storing medium which stores the program codeconstructs the present invention.

FIG. 3 is a diagram showing a memory map in a state in which a controlprogram of the host computer according to the present invention isloaded into the RAM 107 and made executable.

FIG. 4 is a diagram showing a memory map in a state in which the controlprogram of the printer according to the present invention is loaded intothe RAM 114 and made executable.

Although the present embodiment shows the example such that the presentcontrol program and associated data are directly loaded into the RAMfrom the storing medium and executed, additionally, the present controlprogram and associated data may be temporarily stored (installed) intothe hard disk (disk device 109) serving as a nonvolatile storing mediumfrom an external storing medium such as a floppy disk (FD) and loadedinto the RAM from the hard disk when operating the present program toform the data and control the transmitting process.

As for a storing medium to supply the program code, it is able to use afloppy disk, hard disk, optical disk, magneto-optical disk, CD-ROM,CD-R, magnetic tape, nonvolatile memory card, ROM, and the like.Obviously, the functions of the aforementioned embodiments can beeffected not only by executing the program code which is read out by thecomputer, but also by executing a part or all of the actual processes bythe OS (Operating System) which operates on the computer on the basis ofthe instruction of the program code.

Obviously, the functions of the aforementioned embodiments can befurther effected by writing the program code read-out from the storingmedium into a memory provided for a function expansion board inserted tothe computer or a function expansion unit connected to the computer, andthereafter executing a part or all of the actual processes by a CPU,etc. provided for the function expansion board or function expansionunit on the basis of the instruction of the program code.

According to the present invention, the dummy print data to which thecancel flag is set is transmitted to the printer when the user issues aninstruction to cancel the relevant print job in process of transferringthe print data in the print job, so that it is possible to delete theprint data which has been already transmitted to the printer and stopthe process for printing the print data, by instructing a cancel once.

Consequently, it is possible to reduce the user's load accompanied bythe process for canceling the print job, and speedily effect theprocesses for actually deleting the print data in the printer andstopping the print of the print data after issuing the first cancelinstruction.

1. A program stored on a computer-readable medium for causing a computerto execute a processing method for an information processing apparatuswhich communicates with a printer having a job data channel whichreceives a print job, the processing method comprising the steps of:generating a plurality of job packets as a print job, wherein each jobpacket includes a header, and at least one of the headers identifiesprint data; generating a cancel packet containing an instruction tocancel the print job when a cancel instruction of the print job isdetected while transferring the job packets via the job data channel;and controlling transfer of the cancel packet via the job data channel,wherein the printer stores data, taken from the job packets received viathe job data channel, in a storage unit based on analyzing the headersof the packets, and the printer issues cancellation of processing of theprint data if a cancel packet is confirmed based on analyzing theheaders of the job packets received via the job data channel.
 2. Theprogram according to claim 1, further comprising a cancel control stepfor canceling a print job retained in a host computer in accordance withreferencing a managing table which manages a transfer status of a printjob.
 3. The program according to claim 1, wherein the cancel packetcomprises dummy data.
 4. A program stored on a computer-readable mediumfor causing a computer to execute a processing method for a printerhaving a job data channel which receives print data and thatcommunicates with an information processing apparatus, the processingmethod comprising the steps of: receiving a plurality of job packets,via the job data channel, as a print job, the job packets beinggenerated by the information processing apparatus and each including aheader, at least one of which identifies print data; analyzing theheaders of the job packets received in the receiving step; storing data,taken from the job packets received via the job data channel, in astorage unit based on the analyzing step; and canceling processing ofthe stored print data if a cancel packet is confirmed based on theanalyzing step.
 5. The program according to claim 4, wherein the cancelpacket comprises dummy data.